iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0

今日內容:陣列、調整陣列大小、陣列中的搜尋、varargs、二維陣列


陣列

看起來不同的是宣告時[]的位置,C, C++是放在變數名稱後面,Java則是放在資料型態後面
且Java的[]不能直接輸入數值,需要使用new關鍵字才能建立固定陣列大小的物件

int[] nums = {1, 2, 3};

for(int i=0; i<nums.length; ++i){  // 陣列大小用 .length (無論甚麼資料型態都可以)
    System.out.println(nums[i]);
}
/*
1
2
3
*/

// 也可以用enhanced for
for(int num : nums){
    System.out.println(num);
}

如果想要使用sort或binarySearch這些內建的函式:

import java.util.Arrays;

// 一樣使用上面的nums陣列 直接進行排序
Arrays.sort(nums);

Arrays.fill(nums, 4);
// 會將全部的陣列數值都改成4

調整陣列大小

你可以先宣告一個沒有大小的陣列,隨後再依照使用者的輸入調整大小

String[] food;
int size;
size = scanner.nextInt();

food = new String[size];  // 這裡要用new設定出一塊新的記憶體給他

或者是直接指定出需要多少的空間給他

String[] food = new String[10];

陣列中的搜尋

可以使用最簡單的線性搜尋(linear search),或者是寫二元(binary search),也可以用util.Arrays裡面的binarySearch();

int, double, char, bool 進行比較時可以使用 == 進行判斷
如果是String 則可以用 .equals() 函式


varargs

避免創建很多重名的overloaded methods
我們可以在傳入的參數中,資料型態後面加三個點
這樣系統會自動將要傳入的資料轉換成array的形式

public static void main(String[] args){
    System.out.println(add(1, 2, 3)); // 6
    System.out.println(add(4, 5, 6, 7, 8, 9, 10)) // 49
}

static int add(int... nums){
    int sum = 0;
    for(int num : nums){
        sum += num;
    }
    return sum;
}

二維陣列

也是一樣的方式和邏輯
使用時可以用row和column去思考

int[][] num = {{0, 1}, {2, 3}};
/*
0 1
2 3
*/

結語

今天是學習Java基本語法的第四天,目前感覺起來好像很常用到 new 這個關鍵字,或許跟Java的OOP有關係,可能過幾天就能夠更理解Java了。
今天也是快樂學習的一天,明天繼續!/images/emoticon/emoticon78.gif


上一篇
Day 4:Java基本語法(三)
下一篇
Day 6:Java OOP基礎(一)
系列文
30天從基礎學起Java,直到做出我的第一個遊戲21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言